package mireille.learning.devoir1;

import mireille.learning.devoir1.Exceptions.CompteException;
import mireille.learning.devoir1.Exceptions.OperationPourCrediterNonAutoriseException;
import mireille.learning.devoir1.Exceptions.DebitNonAutoriseException;

/**
 * <p>Création de la classe CompteCourant, une sous-classe de CompteBancaire</p>
 *
 * @author Mireille Tepounnou
 *
 */
public class CompteCourant extends CompteBancaire {

    /**
     * Le taux d'agios est constant pour tous les comptes courants
     */
    public static final double tauxAgios = 0.02; 

    /**
     * constructeur de la classe CompteCourant avec attribution des valeurs
     *
     * @param nom nom du compte
     * @param adresse adresse du compte
     * @param tauxAgios taux d'agios
     */
    public CompteCourant(String nom, String adresse) {

        // champs communs à la superclasse et à la sous-classe
        super(nom, adresse);
        

    }

    /**
     * Redéfinissons la méthode String toString () qui complète la chaîne de
     * caractères retournée par la méthode toString de la classe CompteBancaire
     * de la mention : "Compte courant".
     *
     * @return
     */
    @Override
    public String toString() {
        String str2 = "Compte courant :" + "\n";
        return str2 + super.toString();
    }

    /**
     * Définissons la méthode public void traitementQuotidien () qui débite le
     * compte (déduction des agios) d'un montant égal au produit du solde par le
     * taux d'agios (si le solde est négatif). Agios = intérêts, commisions
     */
    @Override
    public void traitementQuotidien() throws OperationPourCrediterNonAutoriseException, DebitNonAutoriseException{
        if (this.getSolde() < 0) {
            debiter(-1.0 * this.getSolde() * tauxAgios);
        }
    }
}
